package com.fg.cloud.manager.mapper.order;

import java.util.List;
import java.util.Map;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.manager.entry.order.OrderDeliveryDetailEntity;
import com.fg.cloud.manager.entry.order.OrderDeliveryInfoEntity;
import com.fg.cloud.manager.entry.order.OrderDetailEntity;
import com.fg.cloud.manager.entry.order.OrderInfoEntity;
import com.fg.cloud.manager.entry.order.vo.OrderAllDateVo;
import com.fg.cloud.manager.entry.order.vo.OrderDeliveryAllDateVo;

public interface OrderDeliveryMapper {

	/**
	 * 
	 * Description:查询发货单列表条数
	 * @return
	 * @author 陈银龙
	 * @param pageinfo 
	 * @date 2017年8月24日上午10:29:15
	 */
	Long findListCont(PageUtils<OrderDeliveryInfoEntity> pageinfo);

	/**
	 * 
	 * Description:查询发货单单列表
	 * @param pageinfo
	 * @author 陈银龙
	 * @return 
	 * @date 2017年8月24日下午12:42:27
	 */
	List<OrderDeliveryInfoEntity> findList(PageUtils<OrderDeliveryInfoEntity> pageinfo);

	/**
	 * 
	 * Description:根据id查发货单和详情
	 * @param usmap
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月25日下午4:01:52
	 */
	List<OrderDeliveryAllDateVo> findDeliveryDatailsById(Map<String, Object> usmap);
	
	/**
	 * 
	 * Description:根据id查发货单
	 * @param usmap
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月24日下午12:52:57
	 */
	OrderDeliveryInfoEntity findDelById(Map<String, Object> usmap);

	/**
	 * 
	 * Description:根据id查订单
	 * @param usmap
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月24日下午2:11:25
	 */
	OrderInfoEntity findorderInfoById(Map<String, Object> usmap);

	/**
	 * 
	 * Description:根据编号查订单详情全部数据
	 * @param usmap
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月24日下午5:11:54
	 */
	List<OrderAllDateVo> findAllOrderDate(Map<String, Object> usmap);

	/**
	 * 
	 * Description:新增发货单
	 * @param odi
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月25日上午10:57:08
	 */
	Long insertDelOrder(OrderDeliveryInfoEntity odi);

	/**
	 * 
	 * Description:新增发货单详情
	 * @param listDetails
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月25日上午11:17:24
	 */
	Long insertDelOrderDetail(List<OrderDeliveryDetailEntity> listDetails);

	/**
	 * Description:发货单修改
	 * @param odi
	 * @return
	 * @author 陈银龙
	 * @date 2017年8月25日下午6:04:26
	 */
	Long updateDelOrder(OrderDeliveryInfoEntity odi);

	/**
	 * 发货单详情修改
	 * */
	Long updateDelOrderDetail(OrderDeliveryDetailEntity listDetails);

	/**
	 * 修改订单
	 * */
	Long updateOrder(OrderInfoEntity ord);
	
	/**
	 * 修改订单详情
	 * */
	Long updateOrderDetail(OrderDetailEntity orderDetailEntity);

	/**
	 * 高级查询条数
	 * */
	Long findBySeniorCont(PageUtils<OrderDeliveryInfoEntity> pageinfo);

	/**
	 * 高级查询
	 * */
	List<OrderDeliveryInfoEntity> findBySenior(PageUtils<OrderDeliveryInfoEntity> pageinfo);

	/**
	 * 发货单删除
	 * */
	Integer deleteDelOrder(Map<String, Object> usmap);
	
	/**
	 * 删除发货单详情
	 * */
	void deleteByDeliveryIds(Map<String, Object> usmap);

	/**
	 * 修改状态
	 * */
	Long updateProcess(Map<String, Object> usmap);

	/**
	 * 通过id查订单详情
	 * */
	List<OrderDeliveryDetailEntity> findDetailByIdAndOrderOrigin(Map<String, Object> usmap);

	/**
	 * 通过id删详情
	 * */
	void deleteByDeliveryId(Long id);

	/**
	 * 查询一个订单下所有发货单和详情
	 * */
	List<OrderDeliveryAllDateVo> findDeliveryByOrderId(PageUtils<OrderDeliveryInfoEntity> pageinfo);

	/**
	 * 查询一个订单下所有发货单条数
	 * */
	Long findDeliveryContByOrderId(PageUtils<OrderDeliveryInfoEntity> pageinfo);

	/**
	 * 查询一个订单下所有发货单头
	 * */
	Long findDeliveryInfoByOrderId(Map<String, Object> usmap);

	/**
	 * 修改订单状态
	 * */
	void updateOrderStatus(Map<String, Object> usmap);

	long findCountByOrderInfo(PageUtils<OrderInfoEntity> pageinfo);

	List<OrderInfoEntity> findByOrderInfo(PageUtils<OrderInfoEntity> pageinfo);

	/**
	 * 查询发货单状态
	 * */
	Integer findDeliveryStatus(Map<String, Object> usmap);


}
